﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Domain.Entitys
{
    /// <summary>
    /// 激励登记表
    /// </summary>
    public class Bonus
    {
        /// <summary>
        /// 唯一标识符，作为主键且为自动增长列，用于在系统中唯一确定该员工激励记录，类型为整数。
        /// </summary>
        public int BonId { get; set; }

        /// <summary>
        /// 职位分类编号，用于区分不同的职位分类，便于在系统内进行职位相关的识别、关联以及业务操作，类型为字符串（可根据实际编号格式调整具体类型）。
        /// </summary>
        public string MajorKindId { get; set; }

        /// <summary>
        /// 职位分类名称，直观展示该职位分类的具体称呼，便于用户识别和理解，类型为字符串。
        /// </summary>
        public string MajorKindName { get; set; }

        /// <summary>
        /// 职位编号，用于唯一标识不同的职位，方便进行职位相关的各种操作及数据关联，类型为字符串（具体类型可按实际编号规则确定）。
        /// </summary>
        public string MajorId { get; set; }

        /// <summary>
        /// 职位名称，便于清晰呈现职位的具体称谓，有助于用户区分不同职位，类型为字符串。
        /// </summary>
        public string MajorName { get; set; }

        /// <summary>
        /// 人力资源档案编号，用于关联到对应的员工档案，确定是哪位员工获得的激励，类型为字符串（可根据档案编号格式确定具体类型）。
        /// </summary>
        public string HumanId { get; set; }

        /// <summary>
        /// 姓名，记录获得激励的员工姓名，类型为字符串。
        /// </summary>
        public string HumanName { get; set; }

        /// <summary>
        /// 激励项目名称，清晰呈现该激励具体指代的内容，如奖金、荣誉称号等，类型为字符串。
        /// </summary>
        public string BonusItem { get; set; }

        /// <summary>
        /// 激励价值，记录该激励对应的价值大小，例如奖金金额等（具体含义根据激励类型而定），类型为 decimal（用于精确的数值表示，如金额等情况）。
        /// </summary>
        public decimal BonusWorth { get; set; }

        /// <summary>
        /// 激励等级，用于区分不同程度的激励，比如一等奖、二等奖等，类型为字符串（可根据实际等级设定格式确定类型）。
        /// </summary>
        public string BonusDegree { get; set; }

        /// <summary>
        /// 备注，用于添加关于该激励的额外说明、特殊情况记录等，类型为字符串。
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 登记人，记录最初将该激励信息录入系统的人员相关信息，类型为字符串。
        /// </summary>
        public string Register { get; set; }

        /// <summary>
        /// 复核人，明确负责对该激励信息进行复核操作的人员相关信息，类型为字符串。
        /// </summary>
        public string Checker { get; set; }

        /// <summary>
        /// 登记时间，记录激励信息在系统中首次登记的时间，类型为DateTime。
        /// </summary>
        public DateTime RegistTime { get; set; }

        /// <summary>
        /// 复核时间，对应激励信息复核操作完成的时间点，类型为DateTime。
        /// </summary>
        public DateTime CheckTime { get; set; }

        /// <summary>
        /// 复核状态，用于标记该激励信息当前是否经过复核以及复核的结果情况等，类型为字符串（常见取值如"已复核"、"待复核"等）。
        /// </summary>
        public string CheckStatus { get; set; }
    }
}
